首先有个想法,如果该位为 且不是前导 ,则将 的数量加一,最后看 是否出现了至少 次。
但这样有个问题,比如在 时, 就不会被计入答案 ,原因是 的前导 也算在了它二进制的位数中。
所以还要记录前导零的数量 ,最后判断是否出现至少 即可。
An Ac a day, keeps the doctor away!
首先有个想法,如果该位为 0 且不是前导 0,则将 0 的数量加一,最后看 0 是否出现了至少 ⌈2len⌉ 次。
但这样有个问题,比如在 n=8(1000)2 时, 2(0010) 就不会被计入答案 ,原因是 2 的前导 0 也算在了它二进制的位数中。
所以还要记录前导零的数量 leadnum,最后判断是否出现至少 ⌈2len−leadnum⌉ 即可。
每个数的数字和的和其实就是所有数字与它出现次数的积的和。
那么对于 0−9 ,依次像 P2602 [ZJOI2010]数字计数 统计出现次数就可以了。
具体做法也很简单,记录前 pos 位某个数字出现次数 sum,记忆化搜索即可通过。
设整数 n 的 lqp 拆分权值为 g(n) , 那么有:
i=1∑nj=i+1∑nlcm(Ai,Aj)